package com.zmn.plat.persistence.interfaces.message;

import com.zmn.plat.model.entity.message.MsgWechatTemplate;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 描述: 数据库访问
 *
 * @author tanghongjun
 * @since 2020-06-19 15:34:59
 **/
public interface MsgWechatTemplateDAO {

    /**
     * 描述: 根据id查询数据
     *
     * @param msgWechatTemplateId id
     * @return MsgWechatTemplate
     * @author tanghongjun
     * @since 2020-06-19 15:34:59
     **/
    MsgWechatTemplate findById(Integer msgWechatTemplateId);

    /**
     * 描述：通过微信appid，获取一条该模板下的配置数据
     *
     * @param templateId  模板id
     * @param wechatAppId wechatAppId 微信appid
     * @return com.zmn.plat.model.entity.message.MsgWechatTemplate
     * @author wangjie
     * @since 2020/6/22 15:31
     **/
    MsgWechatTemplate findMsgWechatTemplateByTemplateIdAndWechatAppId(@Param(value = "templateId") Integer templateId,
                                                                      @Param(value = "wechatAppId") String wechatAppId);

    /**
     * 描述：根据模板id 查询配置的微信数据
     *
     * @param templateId 模板id
     * @return java.util.List<com.zmn.plat.model.entity.message.MsgWechatTemplate>
     * @author wangjie
     * @since 2020/6/19 16:46
     **/
    List<MsgWechatTemplate> listByTemplateId(@Param(value = "templateId") Integer templateId);

    /**
     * 描述: 根据id修改数据 id为必传
     *
     * @param msgWechatTemplate 待修改数据
     * @return java.lang.Integer
     * @author tanghongjun
     * @since 2020-06-19 15:34:59
     **/
    Integer updateByKey(MsgWechatTemplate msgWechatTemplate);

    /**
     * 描述: 新增数据
     *
     * @param msgWechatTemplate 待新增数据
     * @return java.lang.Integer 主键key
     * @author tanghongjun
     * @since 2020-06-19 15:34:59
     **/
    Integer insert(MsgWechatTemplate msgWechatTemplate);

    /**
     * 描述: 批量新增数据
     *
     * @param msgWechatTemplateList 待新增数据
     * @author tanghongjun
     * @since 2020-06-19 15:34:59
     **/
    void insertBatch(@Param(value = "msgWechatTemplateList") List<MsgWechatTemplate> msgWechatTemplateList);

    /**
     * 描述：通过模板id 删除数据
     *
     * @param templateId 模板id
     * @return java.lang.Integer
     * @author wangjie
     * @since 2020/6/22 11:41
     **/
    Integer deleteByTemplateId(@Param(value = "templateId") Integer templateId);

}
